Primary aim
For our primary analysis, multiple regression models were run to investigate the relationship between MS and brain volumes. The models were run separately (i.e. in parallel) for each brain region of interest (ROI) and the results are reported for ROIs that showed significant associations with MS. The models controlled for Sex, Age, Age Squared, Age by Sex interaction, and Intracranial Volume (ICV).
Model equation: \[\begin{align} Volume &= \beta_0 + \beta_1*Sex + \beta_2*Age + \beta_3*Age^2 + \beta_4*Sex*Age + \beta_5*ICV + \beta_6*MS + \epsilon \end{align}\]
Significant main effects: MS
With non-MS controls as the reference group, the main effect in
milliliters (\(mL\)) of having MS,
after accounting for control variables, is shown in the
estimate column for each significant ROI in the table
below; 95% confidence intervals for the effect are shown in the
confidence.interval column. Individual effects are
described below the table.
#####
# Main effect Model: ROI ~ Sex + Age + Age^2 + Sex\*Age + MS + ICV
#####
run_model <- function(outcome){
#' run model for each ROI
f <- as.formula(sprintf("%s ~ Sex + Age + Age^2 + Sex*Age + MS + ICV", outcome))
res <- lm(f, data = df)
}
# run models searately
models <- ROI_INDICES %>%
purrr::map(run_model)
# tidy models
models_df <- models %>%
purrr::map(tidy) %>%
setNames(ROI_INDICES) %>%
bind_rows(.id = 'ROI_INDEX') %>%
left_join(dict_df, by = c('ROI_INDEX')) %>% # join with ROI dictionary
select(ROI_INDEX, ROI_NAME, TISSUE_SEG, everything())
# use FDR correction
sig_main_effects_df <- models_df %>%
filter(term == 'MS1') %>%
mutate(p.value.adj = p.adjust(p.value, method='fdr')) %>%
# add confidence intervals:
add_column(confidence.interval = purrr::map(models, confint, parm = "MS1") %>% purrr::map(~sprintf("(%.1f, %.1f)", .x[1], .x[2])) |> unlist(),
.after = 'estimate') %>%
filter(p.value.adj < 0.05) %>%
mutate(p.value = ifelse(p.value < 0.0001,
"<0.0001",
as.character(round(p.value, 4))),
p.value.adj = ifelse(p.value.adj < 0.0001,
"<0.0001",
as.character(round(p.value.adj, 4))),
estimate = round(estimate, 1)) %>%
arrange(by = TISSUE_SEG)
# show pretty
sig_main_effects_df %>%
select(-ROI_INDEX, -std.error, -statistic, -term)
# function to describe results
describe_main_effect <- function(row){
sprintf("The %s volume of MS patient is %.1f mL %s, on average, compared to that of non-MS controls (95%% CI: %s, p = %s).",
row$ROI_NAME,
round(abs(row$estimate), 1),
ifelse(sign(row$estimate) == 1, 'bigger', 'smaller'),
row$confidence.interval,
row$p.value.adj
) |> invisible()
}
# split by rows
rows <- sig_main_effects_df %>%
split(seq_len(nrow(sig_main_effects_df)))
for (effect_row in rows){ # make list output
cat("\n")
cat("-", describe_main_effect(effect_row), "\n")
}
The Right Thalamus Proper volume of MS patient is 445.9 mL smaller, on average, compared to that of non-MS controls (95% CI: (-561.1, -330.6), p = <0.0001).
The Left Thalamus Proper volume of MS patient is 445.8 mL smaller, on average, compared to that of non-MS controls (95% CI: (-564.1, -327.6), p = <0.0001).
The Left Angular Gyrus volume of MS patient is 574.7 mL smaller, on average, compared to that of non-MS controls (95% CI: (-923.0, -226.4), p = 0.0179).
The Left Calcarine Cortex volume of MS patient is 242.8 mL bigger, on average, compared to that of non-MS controls (95% CI: (90.6, 395.0), p = 0.0216).
The Right Frontal Pole volume of MS patient is 178.8 mL smaller, on average, compared to that of non-MS controls (95% CI: (-284.6, -73.0), p = 0.0167).
The Left Frontal Pole volume of MS patient is 213.7 mL smaller, on average, compared to that of non-MS controls (95% CI: (-336.6, -90.8), p = 0.0138).
The Right Fusiform Gyrus volume of MS patient is 357.8 mL smaller, on average, compared to that of non-MS controls (95% CI: (-596.6, -118.9), p = 0.0324).
The Right Inferior Occipital Gyrus volume of MS patient is 299.4 mL bigger, on average, compared to that of non-MS controls (95% CI: (92.6, 506.2), p = 0.0415).
The Left Middle Cingulate Gyrus volume of MS patient is 306.4 mL smaller, on average, compared to that of non-MS controls (95% CI: (-464.2, -148.7), p = 0.0042).
The Left Parietal Operculum volume of MS patient is 180.8 mL smaller, on average, compared to that of non-MS controls (95% CI: (-297.9, -63.7), p = 0.0278).
The Right Precentral Gyrus volume of MS patient is 531.6 mL smaller, on average, compared to that of non-MS controls (95% CI: (-863.4, -199.8), p = 0.0216).
The 3rd Ventricle volume of MS patient is 175.4 mL bigger, on average, compared to that of non-MS controls (95% CI: (122.8, 228.0), p = <0.0001).
The Right Inferior Lateral Ventricle volume of MS patient is 68.6 mL bigger, on average, compared to that of non-MS controls (95% CI: (40.5, 96.8), p = <0.0001).
The Left Inferior Lateral Ventricle volume of MS patient is 40.8 mL bigger, on average, compared to that of non-MS controls (95% CI: (17.7, 63.9), p = 0.0132).
The Left Lateral Ventricle volume of MS patient is 1174.3 mL bigger, on average, compared to that of non-MS controls (95% CI: (398.6, 1950.0), p = 0.0314).
The Frontal Lobe WM Left volume of MS patient is 1979.1 mL bigger, on average, compared to that of non-MS controls (95% CI: (798.1, 3160.0), p = 0.0167).
The Corpus Callosum volume of MS patient is 457.8 mL smaller, on average, compared to that of non-MS controls (95% CI: (-781.1, -134.6), p = 0.0472).